package io;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * @author Huangjin
 * @version 1.0
 * describe:缓冲字符流----最常用的读写字符串的流
 *      是一对高级流，并且是字符流
 *      内部维护一个默认8KB（8192）长度的char数组，还是以块读写的形式读写字符以提高读写效率
 *      PrintWriter:按行写入数据
 * @date 2023/3/9 9:28
 */
public class PWDemo {
    public static void main(String[] args) throws IOException {
        //底层连接了BufferedWriter，连接了OutputStreamWriter，连接了FileOutStream
        //低级流（文件流）
        FileOutputStream fos = new FileOutputStream("pw.txt");
        //转换流（高级流）字符转字节
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        //缓冲字符流（高级流）加快读写速度
        BufferedWriter bw = new BufferedWriter(osw);
        //按行写入流（高级流）
        PrintWriter pw = new PrintWriter(bw);
        //写入字符串
        pw.println("和我在成都的街头走一走，哦哦哦...\n");

        pw.println("直到所有的等都熄灭了也不停留");
        //冲水
        pw.flush();
        //关流
        pw.close();
        System.out.println("OK!");


        //最常用写入字符串的方法
        /*
        PrintWriter pw = new PrintWriter("pw.txt");
        pw.println("和我在成都的街头走一走，哦哦..");
        pw.println("直到所有的灯都写灭了也不停留");
        System.out.println("OK");
        pw.close();

         */
    }
}
